"""
    Message Board Web Application
    :Author: MiaLi
"""
from flask import Flask
from flask_moment import Moment
from flask_bootstrap import Bootstrap5
from flask_sqlalchemy import SQLAlchemy
from flask_debugtoolbar import DebugToolbarExtension

app = Flask(__name__)
app.config.from_pyfile('settings.py')

# 模板中的 Jinja2 语句、表达式和注释会保留移除后的空行。
# 使用模板环境对象提供的 trim_blocks 和 lstrip_blocks 可以在渲染模板时移除这些空行。
# 删除 Jinja2 语句后的第一个空行
app.jinja_env.trim_blocks = True
# 删除 Jinja2 语句所在行之前的空格和制表符
app.jinja_env.lstrip_blocks = True

db = SQLAlchemy(app)
bootstrap = Bootstrap5(app)
moment = Moment(app)
toolbar = DebugToolbarExtension(app)

# 使用程序实例 app 注册的 views errors commands 等需要在此构造文件被执行（app被定义）后，相继声明。
# 但这些模块也需要从构造文件中导入 app ，为避免循环依赖，导入语句在构造文件的末尾定义。
from messageboard import views, errors, commands
